﻿/**
 * @file tipwindow.h
 * @author huangxb
 * @email 18228033207@163.com
 * @date 2025-07-09
 * @brief 用于显示提示信息的独立小弹窗
 */
#ifndef TIPWINDOW_H
#define TIPWINDOW_H

#include <QPointer>
#include <QWidget>
#include <QQueue>

namespace Ui {
class CTipWindow;
}

class CTipWindow : public QWidget
{
    Q_OBJECT

private:
    Ui::CTipWindow *ui;
    static QQueue<QPointer<CTipWindow>> m_queueShownTipWindow;

public:
    explicit CTipWindow(QWidget *parent = nullptr);
    ~CTipWindow();

    /**
     * @brief 显示成功tip
     * @param pt 显示位置，若值为-1，表示宽度或高度居中
     * @param str tip
     * @param parent 父窗口
     * @param secs 显示的时间/秒
     */
    static void ShowSuccessTip(QPoint pt, const QString& str, QWidget* parent = nullptr, int secs = 3);

protected:
    void closeEvent(QCloseEvent *event) override;

private:
    void SetSuccessTip(const QString& str);
    void Show(QPoint pt, int misc);
};

#endif // TIPWINDOW_H
